package offer.secnod;

public class Offer16 {


    int jisuan(double m,int n){
        if (m==0){
            return  0;
        }
        long b=n;
        if (b==0){
            return 1;
        }
        if (b<0){
            //TODO:2023/8/22 这里的处理是关键之处 不是将b取倒数 而是将x取倒数
//            b=1/b;
            m=1/m;
            b=-b;
        }
        int res=1;

        while (b>0){
            if ((b&1)==1){
                res*=b;
            }
            m*=m;
            //TODO:2023/8/22 这个这样写
            b>>=1;
        }



  return  res;

    }

}
